The present invention relates to disk drives, and more particularly, to techniques for improving the efficiency of hard disk drives.
When a host operating system sends a read or write request to a storage device, the requesting task within the operating system (OS) blocks until the request is completed. In a desktop environment, there are typically other tasks that can be performed during the request operation.
However, embedded devices typically only perform one function at a time. In an embedded device with integrated drive storage, the processor that runs the host OS is idle during disk drive operations. Conversely, a disk drive controller processor also has significant idle periods.
Most disk drive controller processor designs stress response time versus total bandwidth. According to standard design criteria, more emphasis is placed on having a disk drive controller processor quickly finish its processing once a command is received. For example, standard design criteria places more importance on starting the movement of an actuator in a disk drive, than on maximizing the total amount of processing that can be done over time. As a result, disk drive controller processors have a significant amount of processor bandwidth that is unused.
There is very little overlap between when a host OS processor is operating and when a disk drive controller is operating in the environment of a typical embedded device. Therefore, it would be desirable to increase the efficiency of data transfers between the host OS and the disk drive controller to provide a cost and performance advantage.
In storage devices where data is accessed via block addresses, the storage device has no knowledge of the nature of any given read/write access. From the storage device's point of view, all accesses are created equal. The real-time nature of video and audio requires steady data rates with very low jitter.
In many of these systems, other accesses to the storage device are occurring at the same time. As an example, a set top box can play a movie at the same time that a user is browsing a channel guide. The requirements of the movie are real-time, while the channel guide is not. Because the storage device is oblivious to these requirements, the system has to be engineered to work around this limitation, often leading to additional system cost or a lower level of performance.
The attempts that have been made to address this limitation have failed to be adopted in the marketplace, because either significant cost was added to the storage device, or the protocol for the system/storage device communication required significant changes to the standards.
Therefore, it would be desirable to provide a technique for making a disk drive storage device provide multiple streams of audio and/or video without requiring significant extra cost or significant changes to the system or the storage device communication protocol.